package movilmax.sia_corp.action;

import java.io.File;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import org.apache.commons.io.FileUtils;

import utilidades.Cadena;


import movilmax.sia_corp.model.ListaSs;
import movilmax.sia_corp.model.Listax;
import movilmax.sia_corp.model.Presupuesto;
import movilmax.sia_corp.model.SolicitudUpg;
import movilmax.sia_corp.model.SucursalC;
import movilmax.sia_corp.model.Usuario;
import apli.conectar.Conectar;
import apli.procesos.PWimax;
import basedatos.Fecha;
import basedatos.Resultado;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;



public class RegistroSolicitudMud  extends ActionSupport {
	private static final long serialVersionUID = -4187192956355322987L;
    
	private SolicitudUpg solicitud;
	private SolicitudUpg prueba;
	
	private List<Listax> lst_servicios;
	private List<Listax> lst_productos;
	private List<Listax> lst_sucursales;
	private List<ListaSs> tabla_det;
	private String id_obj;
	
	private Conectar BASE;
	private String bloquear;
	private String cod_adendun;
	private String cod_presupuesto;

	
	private File archivo;
	private String archivoContentType;
	private String archivoFileName;
	
	private String omitir;
	
	private LinkedList<Presupuesto> lst_presupuestos;
	
	/*public void validate(){	
		  try{	
			   if (this.getSolicitud().getCodigo().length() == 0 ){
				     this.addActionError( "Codigo invalido" );
					 return ; 
			   }
			   if ( solicitud.getContrato().length() == 0 ){	
					 this.addActionError( "Debe ingresar el numero de contrato" );
					 return;
			   }
			 if( this.getSolicitud().getSucursal_mud()!=null ){
			   if ( this.getSolicitud().getSucursal_mud().getTel1().length() <3  ){	
					this.addActionError( "Debe indicar el numero de telefono 1" );
					return;
				}
				
				if ( this.getSolicitud().getSucursal_mud().getCod_mun().equals("-1")  ){	
					this.addActionError( "Debe seleccionar el municipio" );
					return;
				}
				if ( this.getSolicitud().getSucursal_mud().getCiudad().length() < 3  ){	
					this.addActionError( "Debe indicar la ciudad" );
					return;
				}
				if ( this.getSolicitud().getSucursal_mud().getZona().length() < 4  ){	
					this.addActionError( "Debe indicar la zona con 4 caracteres como minimo" );
					return;
				}
				if ( this.getSolicitud().getSucursal_mud().getAvcalle().length() < 8  ){	
					this.addActionError( "Debe indicar av / calle / urbanizacion con 8 caracteres como minimo" );
					return;
				}
				if ( this.getSolicitud().getSucursal_mud().getTp_inmueble().equals("Seleccione")  ){	
					this.addActionError( "Debe indicar el tipo de inmueble" );
					return;
				}
			 }
				if(this.archivo!=null){
					 if (this.getSolicitud().getCodigo().equals("-1")  ){
						if ( this.getArchivoFileName().length() == 0 ){	
							this.addActionError( "Debe seleccionar el archivo" );
							return;
						}
						if(!this.getCod_adendun().equals("-1")){
							if(!this.getArchivoContentType().trim().equals("application/vnd.openxmlformats-officedocument.wordprocessingml.document")){
								 this.addActionError("El tipo de archivo :"+ this.getArchivoContentType() +" no es valido, solo se permiten archivos ( docx ) " );
						    	 return;
					    	}
						}else{
							if(!this.getArchivoContentType().trim().equals("application/pdf")){
								 this.addActionError("El tipo de archivo :"+ this.getArchivoContentType() +" no es valido, solo se permiten archivos PDF " );
						    	 return;
					    	}
						}
					 }	
				}else{
					if (this.getSolicitud().getCodigo().equals("-1")  ){
						this.addActionError("Debe seleccionar el archivo" );
						return;
					}
				}
			   if ( solicitud.getObs().length() == 0 ){	
				   if (this.getSolicitud().getCodigo().equals("-1")){
				       solicitud.setObs("NINGUNA");
				   }  
			   }	
				
		  }catch(Exception err){
			 
		  }	
	}	*/	
				
	
	@SuppressWarnings("rawtypes")
	public String cargar() throws Exception {
    		Map session = ActionContext.getContext().getSession();
    	    Usuario USUARIO = (Usuario)session.get("ses_usuario");
    	    String SQL="";
    	    if (USUARIO==null){	
    	    	this.addActionError("La sesion del usuario ha caducado");
				return ERROR;
    	    }
    	    if(solicitud.getContrato().equals("")){
    	    	this.addActionError("Debe indicar el numero de contrato");
 				return ERROR;
    	    }
    	    Conectar BASE= new Conectar();
    	    tabla_det= new ArrayList<ListaSs>();
    	    if(BASE.getMsg().equals("SI")){	
	  			SQL="Select T.nombres+' '+T.apellidos as des,T.identificacion,C.tipo,C.status " +
	  				" From clientes T,contratos C Where C.contrato='"+solicitud.getContrato() + "' and C.cliente=T.codigo ";
	  			Resultado RCS=BASE.getBaseDatos().consultar(SQL);
	  			if(RCS.RP){
	  				 if(RCS.getCadena("status").equals("ANULADO") ){
	  					this.addActionError("No se puede procesar la solicitud el contrato = "+solicitud.getContrato()+", esta anulado");
	  	 				return ERROR;
	  				 }
	  				 solicitud.setDes_cliente(RCS.getCadena("des"));
	  				 solicitud.setDes_rif(RCS.getCadena("identificacion"));
	  				 solicitud.setDes_status("NO REGISTRADA");
	  				 solicitud.setStatus("1000");//1000
	  				 solicitud.setDes_obs("NINGUNA");
	  				 solicitud.setFecha(new Fecha().getFecha());
	  				 solicitud.setHora(new Fecha().getHoras());
	  				 solicitud.setUsuario("NINGUNO");
	  				 solicitud.setCodigo("-1");
	  				 this.setCod_adendun("-1");
	  				 this.setBloquear("NO");
	  				 SQL="Select S.prospecto,S.codigo,S.obs,S.status,S.usuario,D.cod,D.cod_is,D.sucursal,D.servicio,D.producto,D.monto,U.descripcion as des_usuario,CONVERT(varchar(30),S.fecha_act,103) as fecham,S.hora_act as hora,X.descripcion as des_status,W.descripcion as des_servicio,Y.megas as des_producto,Z.descripcion as des_sucursal  " +
	  				 " From corp_solicitud_mud S,corp_solicitud_mud_detalle D,contratos C,usuarios U,corp_status_sol X,corp_servicios W,corp_productos Y,corp_sucursales Z Where C.contrato='"+solicitud.getContrato() + "' and C.contrato=S.contrato and S.procesado='0' and S.status=X.cod and S.usuario_act=U.usuario and S.codigo=D.solicitud and D.servicio=W.cod and D.producto=Y.cod and D.sucursal=Z.cod ";
	  				 RCS=BASE.getBaseDatos().consultar(SQL);
	  				  String COD_PROSPECTO="";
		  			 if(RCS.RP){
		  				 if(!RCS.getCadena("usuario").equals(USUARIO.getUsuario())  ){
		  					this.addActionError("La solicitud codigo ( "+RCS.getCadena("codigo")+" ) , no esta asignada al usuario "+USUARIO.getDescripcion());
		  	 				return ERROR;
		  				 }
		  				 COD_PROSPECTO=RCS.getCadena("prospecto");
		  				 solicitud.setCodigo(RCS.getCadena("codigo"));
		  				 solicitud.setCod_prospecto(COD_PROSPECTO);
		  				 solicitud.setDes_status(RCS.getCadena("des_status"));
		  				 solicitud.setStatus(RCS.getCadena("status")); 
		  				 solicitud.setDes_obs(RCS.getCadena("obs"));
		  				 solicitud.setFecha(RCS.getCadena("fecham"));
		  				 solicitud.setHora(RCS.getCadena("hora"));
		  				 solicitud.setUsuario(RCS.getCadena("des_usuario"));
		  				 if(solicitud.getStatus().equals("1") || solicitud.getStatus().equals("2") )
		  					this.setBloquear("NO");
		  				 else
		  					this.setBloquear("SI"); 
		  				/* do{
		  					  ListaSs LST=new ListaSs();
							  LST.setId(new Cadena().convertirStr(tabla_det.size()+1));
							  LST.setCod(RCS.getCadena("cod")); 
							  LST.setCod_is(RCS.getCadena("cod_is"));
							  LST.setCod_is("-1");
							  LST.setSucursal(RCS.getCadena("sucursal"));
							  LST.setServicio(RCS.getCadena("servicio"));
							  LST.setProducto(RCS.getCadena("producto"));
							  LST.setDes_sucursal(RCS.getCadena("des_sucursal"));
							  LST.setDes_servicio(RCS.getCadena("des_servicio"));
							  LST.setDes_producto(RCS.getCadena("des_producto"));
			  				  LinkedList precio=new Cadena().tokens((new Cadena().convertirStr( RCS.getFloat("monto") )),".");
							  if( precio.get(1).toString().equals("0") )
								 LST.setPrecio(precio.get(0).toString());
							  else
								 LST.setPrecio(precio.get(0).toString()+"."+precio.get(1).toString()); 
							  tabla_det.add(LST);
		  				 }while(RCS.sigItem()); 
		  				 */
		  				 solicitud.setCod_item(RCS.getCadena("cod"));
		  				 solicitud.setCod_item_is(RCS.getCadena("cod_is"));
		  				 solicitud.setSucursal(RCS.getCadena("sucursal"));
		  				 solicitud.setServicio(RCS.getCadena("servicio"));
		  				 solicitud.setProducto(RCS.getCadena("producto"));
		  				 solicitud.setDes_sucursal(RCS.getCadena("des_sucursal"));
		  				 solicitud.setDes_servicio(RCS.getCadena("des_servicio"));
		  				 solicitud.setDes_producto(RCS.getCadena("des_producto")+" Mbps");
		  				 
		  				 SQL="Select codigo From corp_adendus Where contrato='"+solicitud.getContrato() + "' and status='ENVIADA' and mudanza='1' ";
		  				 RCS=BASE.getBaseDatos().consultar(SQL);
			  			 if(RCS.RP){
			  				this.setCod_adendun(RCS.getCadena("codigo")); 
			  			 }
			  			 SQL="Select Z.*,E.estado as des_estado,M.municipio as des_mun,E.estado as cod_estado " +
		  				 "From corp_sucursales Z,estados E,municipios M Where Z.prospecto='"+ COD_PROSPECTO + "' and Z.municipio=M.cod and M.estado=E.cod  ";
		  				 RCS=BASE.getBaseDatos().consultar(SQL);
			  			 if(RCS.RP){
			  				
			  				SucursalC sucx=new SucursalC();
			  				sucx.setTel1(RCS.getCadena("telefono"));
			  				if(RCS.getCadena("telefono_oficina").equals("")){
			  					sucx.setTel2("-");
			  				}else{
			  					sucx.setTel2(RCS.getCadena("telefono_oficina"));
			  				}
			  				if(RCS.getCadena("celular").equals("")){
			  					sucx.setTel3("-");
			  				}else{
			  					sucx.setTel3(RCS.getCadena("celular"));
			  				}
			  				
			  				sucx.setZona(RCS.getCadena("zona"));
			  				sucx.setCiudad(RCS.getCadena("ciudad"));
			  				sucx.setAvcalle(RCS.getCadena("avcalle"));
			  				
			  				sucx.setTp_inmueble(RCS.getCadena("tipoinmueble"));
			  				sucx.setDes_inmueble(RCS.getCadena("des_inmuemble"));
			  				sucx.setNro(RCS.getCadena("nro_inmueble"));
			  				sucx.setPiso(RCS.getCadena("piso_inmueble"));
			  				sucx.setDes(RCS.getCadena("descripcion"));
			  				
			  				sucx.setDes_estado(RCS.getCadena("des_estado"));
			  				sucx.setDes_mun(RCS.getCadena("des_mun"));
			  				sucx.setCod_estado(RCS.getCadena("cod_estado"));
			  				sucx.setCod_mun(RCS.getCadena("municipio"));
			  				solicitud.setSucursal_mud(sucx);
			  			 }
		  			 }else{
		  				 //Cadena C=new Cadena();
		  				 SQL="Select Z.cod,Z.descripcion as des_suc " +
		  				 " From corp_sucursales Z,detalle_servicios_corp C Where C.contrato='"+ solicitud.getContrato() + "' and C.sucursal=Z.cod ";
		  				 RCS=BASE.getBaseDatos().consultar(SQL);
			  			 if(RCS.RP){
					  		 /*do{
					  			 ListaSs LST=new ListaSs();
					  			 LST.setId(new Cadena().convertirStr( tabla_det.size()+1 ));
					  			 LST.setCod("-1");
					  			 LST.setCod_is("-1");
					  			 LST.setSucursal(RCS.getCadena("cod"));
					  			 LST.setServicio("-1");
					  			 LST.setProducto("-1");
					  			 LST.setDes_sucursal(RCS.getCadena("des_suc"));
					  			 LST.setDes_servicio("Seleccione");
					  			 LST.setDes_producto("Seleccione");
					  			 LST.setPrecio("0");
					  			 tabla_det.add(LST);
					  		  }while(RCS.sigItem()); */
			  				 
			  				
					  		 solicitud.setCod_item("-1");
			  				 solicitud.setCod_item_is("-1");
			  				 solicitud.setSucursal(RCS.getCadena("cod"));
			  				 solicitud.setServicio("-1");
			  				 solicitud.setProducto("-1");
			  				 solicitud.setDes_sucursal(RCS.getCadena("des_suc"));
			  				 solicitud.setDes_servicio("Seleccione");
			  				 solicitud.setDes_producto("Seleccione");
			  			 }else{
			  				this.addActionError("El cliente no posee servicios correctamente asociados al contrato, comuniquese con el departamento de administracion"); 
			  			 }
		  			 }
		  			 BASE.getBaseDatos().cerrarConexion();
	  				 return SUCCESS;  	
	  			}else
	  				this.addActionError("El contrato ="+ solicitud.getContrato() +", es invalido"); 
	  			BASE.getBaseDatos().cerrarConexion();
            }else
            	this.addActionError("No hay conexion al servidor");
            
    	   return ERROR;  	
     }
	
    @SuppressWarnings("rawtypes")
	public String guardar_solicitud() throws Exception {
		Map session = ActionContext.getContext().getSession();
	    Usuario USUARIO = (Usuario)session.get("ses_usuario");
	    if (USUARIO!=null){		
	    	BASE= new Conectar();
	    	if(BASE.getMsg().equals("SI")){	
	    		
	    		//--------------------------------VALIDAR CAMPOS-------------------------------------------------------------------//
	    		/* if (this.getSolicitud().getCodigo().length() == 0 ){
				     this.addActionError( "Codigo invalido" );
					 return ERROR; 
	    		 }
			     if ( solicitud.getContrato().length() == 0 ){	
					 this.addActionError( "Debe ingresar el numero de contrato" );
					 return ERROR; 
			     }*/
				 if( this.getSolicitud().getSucursal_mud()!=null ){
					   if ( this.getSolicitud().getSucursal_mud().getTel1().length() <3  ){	
							this.addActionError( "Debe indicar el numero de telefono 1" );
							return ERROR; 
						}
						
						if ( this.getSolicitud().getSucursal_mud().getCod_mun().equals("-1")  ){	
							this.addActionError( "Debe seleccionar el municipio" );
							return ERROR; 
						}
						if ( this.getSolicitud().getSucursal_mud().getCiudad().length() < 3  ){	
							this.addActionError( "Debe indicar la ciudad" );
							return ERROR; 
						}
						if ( this.getSolicitud().getSucursal_mud().getZona().length() < 4  ){	
							this.addActionError( "Debe indicar la zona con 4 caracteres como minimo" );
							return ERROR; 
						}
						if ( this.getSolicitud().getSucursal_mud().getAvcalle().length() < 8  ){	
							this.addActionError( "Debe indicar av / calle / urbanizacion con 8 caracteres como minimo" );
							return ERROR; 
						}
						if ( this.getSolicitud().getSucursal_mud().getTp_inmueble().equals("Seleccione")  ){	
							this.addActionError( "Debe indicar el tipo de inmueble" );
							return ERROR; 
						}
				 }
				 if(this.archivo!=null){
					 if (this.getSolicitud().getCodigo().equals("-1")  ){
						if ( this.getArchivoFileName().length() == 0 ){	
							this.addActionError( "Debe seleccionar el archivo" );
							return ERROR; 
						}
						if(!this.getCod_adendun().equals("-1")){
							if(!this.getArchivoContentType().trim().equals("application/vnd.openxmlformats-officedocument.wordprocessingml.document")){
								 this.addActionError("El tipo de archivo :"+ this.getArchivoContentType() +" no es valido, solo se permiten archivos ( docx ) " );
								 return ERROR; 
					    	}
						}else{
							if(!this.getArchivoContentType().trim().equals("application/pdf")){
								 this.addActionError("El tipo de archivo :"+ this.getArchivoContentType() +" no es valido, solo se permiten archivos PDF " );
								 return ERROR; 
					    	}
						}
					 }	
				 }
	    		
	    		
	    		
	    		
	    		
	    		//-------------------------------------------------------------------------------------------------------------------//
	    		
	    		try{
	    			Fecha F=new Fecha();
	    			String FECHA=F.getFecha();
	    			String HORA=F.getHoras();
	    			String adjuntos="",SQL="";
	    			String CODIGO="",CABECERA="";
	    			String COD_PROSP="",COD_SITE="",COD_NSUC="";
	    			try {
	    				if (!this.getSolicitud().getCodigo().equals("-1") && this.getArchivo()==null ){
	    					adjuntos="-1" ;
	    				}else{
	    					
	    					//boolean a=false;
	    					
		    				 StringBuilder sb = new StringBuilder();
		    				 sb.append("/home/corporativo/clientes/"+ solicitud.getContrato() +"/" );
		    				 sb.append("solicitud_mud.pdf" );
		    				 File theFile = new File(sb.toString());
		    				 FileUtils.copyFile( this.getArchivo() , theFile);
		    				 adjuntos="/home/corporativo/clientes/"+ solicitud.getContrato() +"/solicitud_mud.pdf" ;
	    				}
	    			  }catch(Exception err  ){
					       //this.addActionError(prueba.getDes_cliente()+"--"+"Error al cargar el archivo: "+err.toString() );
					       this.addActionError("Error al cargar el archivo: "+err.toString() );
				      } 	
	    				//Cadena C=new Cadena();
	    				/*LinkedList lst_suc1=C.tokens(this.getSolicitud().getSucursal(), ",");
  		    	    	LinkedList lst_serv=C.tokens(this.getSolicitud().getServicio(), ",");
  		    	    	LinkedList lst_prod=C.tokens(this.getSolicitud().getProducto(), ",");
  		    	    	LinkedList lst_cods=C.tokens(this.getSolicitud().getCod_item(), ",");
  		    	    	LinkedList lst_cods_is=C.tokens(this.getSolicitud().getCod_item_is(), ",");
  		    	    	*/
	    				if (this.getSolicitud().getCodigo().equals("-1") ){
	    					int tam=this.getSolicitud().getDes_rif().length();
	    					String DOC_ID=this.getSolicitud().getDes_rif().substring(1,tam);
	    					COD_PROSP=BASE.getBaseDatos().generarCodigo("prospectos", "codigo");
	    						SQL= "INSERT INTO prospectos (codigo,nombres,apellidos,identificacion,tipodoc,telefono,celular,zona, "+
		  						" ciudad,tipoinmueble,municipio,email,sexo,fnacimiento,status,fecha_registro, "+
		  						" usuario_registro,docid,paginaweb,hora_registro,fax,telefono_oficina,  "+
		  						" servicio_actual,tipo,avcalle,des_inmuemble,nro_inmueble,piso_inmueble )  "+
		  						" VALUES('"+COD_PROSP+"','"+ this.getSolicitud().getDes_cliente()+"','','MUD_"+COD_PROSP+"."+this.getSolicitud().getDes_rif()+"','"+this.getSolicitud().getDes_rif().substring(0,1) +"','***' ,'***' ,'"+this.getSolicitud().getSucursal_mud().getZona() +"' ,'"+this.getSolicitud().getSucursal_mud().getCiudad()+"' ,'"+this.getSolicitud().getSucursal_mud().getTp_inmueble() +"' ,'"+ this.getSolicitud().getSucursal_mud().getCod_mun() +"' ,'****' ,'M' ,'"+FECHA+"' ,'EN PROCESO' ,'"+FECHA+"' ,'"+USUARIO.getUsuario()+"' ,'"+DOC_ID+"' ,'http' ,'"+HORA+"' ,'***' ,'***' ,'0' ,'MUDANZA' ,'"+this.getSolicitud().getSucursal_mud().getAvcalle()  +"' ,'"+this.getSolicitud().getSucursal_mud().getDes_inmueble() +"' ,'"+ this.getSolicitud().getSucursal_mud().getNro()   +"' ,'"+ this.getSolicitud().getSucursal_mud().getPiso()  +"' )";
		    				BASE.getBaseDatos().ejecutar(SQL);	
	    					SQL= "INSERT INTO  detalle_serv_solicitado ( prospecto,  fuente,  serv_i,  vel_i,  serv_d,  vel_d,  observaciones,  sin_cobertura, presupuesto, dispositivo) "+
	    					"VALUES ('"+COD_PROSP+"', '0', 'NO APLICA', '0', 'NO APLICA', '0', 'SOLICITA MUDANZA', '0','0', 'NO APLICA' )";
	    					BASE.getBaseDatos().ejecutar(SQL);	
	    					COD_NSUC=BASE.getBaseDatos().generarCodigo("corp_sucursales", "cod");
	    					SQL="INSERT INTO corp_sucursales(cod, prospecto, telefono, celular, telefono_oficina, zona, ciudad, municipio, fax, avcalle, tipoinmueble, des_inmuemble, nro_inmueble, piso_inmueble, descripcion, fecha_registro, hora_registro, usuario_registro) "+
	    					"VALUES ('"+COD_NSUC+"', '"+COD_PROSP+"','"+this.getSolicitud().getSucursal_mud().getTel1() +"', '"+this.getSolicitud().getSucursal_mud().getTel2()+"', '"+this.getSolicitud().getSucursal_mud().getTel3()+"', '"+this.getSolicitud().getSucursal_mud().getZona() +"', '"+  this.getSolicitud().getSucursal_mud().getCiudad() +"','"+  this.getSolicitud().getSucursal_mud().getCod_mun() +"', '***', '"+ this.getSolicitud().getSucursal_mud().getAvcalle()  +"', '"+ this.getSolicitud().getSucursal_mud().getTp_inmueble() +"', '"+this.getSolicitud().getSucursal_mud().getDes_inmueble()  +"', '"+  this.getSolicitud().getSucursal_mud().getNro()  +"', '"+ this.getSolicitud().getSucursal_mud().getPiso() +"','SEDE PRINCIPAL','"+FECHA+"','"+HORA+"','"+USUARIO.getUsuario()+"' ) ";
	    					BASE.getBaseDatos().ejecutar(SQL);
	    					CODIGO=BASE.getBaseDatos().generarCodigo("corp_solicitud_mud","codigo");
	    					SQL="INSERT INTO corp_solicitud_mud (sol,codigo,contrato,prospecto,obs,usuario,fecha,hora,status,fecha_act,hora_act,usuario_act) VALUES(?,'"+CODIGO +"','"+ this.getSolicitud().getContrato() +"','"+COD_PROSP+"','"+ this.getSolicitud().getObs() + "','"+ USUARIO.getUsuario()+"','"+ FECHA +"','"+HORA+"','1','"+ FECHA +"','"+HORA+"','"+USUARIO.getUsuario()+"' )";
	    					BASE.getBaseDatos().guardarArchivo(adjuntos, SQL);
	    					COD_SITE=BASE.getBaseDatos().generarCodigo("corp_sitesurvey", "codigo");
	    					SQL="INSERT INTO corp_sitesurvey (codigo,prospecto,obs,usuario,autorizada,fecha,fecha_act,hora,hora_act,stx,contrato,vendedor_) "+
  		    				"VALUES('"+COD_SITE+"','"+COD_PROSP+"','SOLICITUD DE MUDANZA CODIGO="+CODIGO+", "+ this.getSolicitud().getObs() +"','"+ USUARIO.getUsuario() +"','"+USUARIO.getUsuario()+"','"+ FECHA +"','"+ FECHA +"','"+HORA+"','"+HORA+"','APROBADO X GTE. VENTAS','"+this.getSolicitud().getContrato() +"','"+ USUARIO.getCod_vendedor() +"' )";
  		    	            BASE.getBaseDatos().ejecutar(SQL);
	    					CABECERA="NUEVA SOLICITUD DE MUDANZA GENERADA CON CODIGO="+CODIGO+", ASOCIADA AL SITE SURVEY N� "+COD_SITE;
	    					/*PROCESOS ACTIVIDADES*/
	    					SQL="INSERT INTO corp_asignaciones(prospecto,vendedor,observaciones,fecha,hora,fecha_actualizo,hora_actualizo,status,auto,mudanza) "+
					        "VALUES ('" + COD_PROSP + "','" + USUARIO.getCod_vendedor()  + "','ASIGNADO X SOLICITUD MUDANZA (SIA-WEB)','" + FECHA + "','" + HORA + "','" + FECHA + "','" + HORA + "','EN PROCESO','1','1' )";
							BASE.getBaseDatos().ejecutar(SQL);
							SQL="INSERT INTO corp_seguimiento_actividades (prospecto,actividad,detalle,obs,usuario,fecha,hora) "+
							"VALUES('"+COD_PROSP+"','9','-1','REGISTRO AUTOMATICO X SOLICITUD DE MUDANZA','"+ USUARIO.getUsuario() +"','"+FECHA+"','"+HORA+"' )";
						    BASE.getBaseDatos().ejecutar(SQL); 
							SQL="INSERT INTO corp_seguimiento_actividades (prospecto,actividad,detalle,obs,usuario,fecha,hora) "+
							"VALUES('"+COD_PROSP+"','9','0','ASIGNACION AUTOMATICA X SOLICITUD DE MUDANZA (SIA-WEB)','sistema','"+FECHA+"','"+HORA+"' )";
					        BASE.getBaseDatos().ejecutar(SQL); 
					        SQL="INSERT INTO corp_seguimiento_actividades (prospecto,actividad,detalle,obs,usuario,fecha,hora) "+
							"VALUES('"+COD_PROSP+"','9','1','REGISTRO AUTOMATICO (SIA-WEB):"+this.getSolicitud().getObs()+"','sistema','"+FECHA+"','"+HORA+"' )";
					        BASE.getBaseDatos().ejecutar(SQL); 
					        SQL="INSERT INTO corp_seguimiento_actividades (prospecto,actividad,detalle,obs,usuario,fecha,hora) "+
							"VALUES('"+COD_PROSP+"','9','2','REGISTRO AUTOMATICO X SOLICITUD DE MUDANZA (SIA-WEB)','sistema','"+FECHA+"','"+HORA+"' )";
					        BASE.getBaseDatos().ejecutar(SQL); 
					        SQL="INSERT INTO corp_seguimiento_actividades (prospecto,actividad,detalle,obs,usuario,fecha,hora) "+
							"VALUES('"+COD_PROSP+"','9','3','REGISTRO AUTOMATICO X SOLICITUD DE MUDANZA (SIA-WEB)','sistema','"+FECHA+"','"+HORA+"' )";
					        BASE.getBaseDatos().ejecutar(SQL); 
					        SQL="INSERT INTO corp_seguimiento_actividades (prospecto,actividad,detalle,obs,usuario,fecha,hora) "+
							"VALUES('"+COD_PROSP+"','9','4','REGISTRO AUTOMATICO X SOLICITUD DE MUDANZA (SIA-WEB)','sistema','"+FECHA+"','"+HORA+"' )";
					        BASE.getBaseDatos().ejecutar(SQL); 
					        SQL="INSERT INTO corp_seguimiento_actividades (prospecto,actividad,detalle,obs,usuario,fecha,hora) "+
							"VALUES('"+COD_PROSP+"','9','5','REGISTRO AUTOMATICO X SOLICITUD DE MUDANZA (SIA-WEB)','sistema','"+FECHA+"','"+HORA+"' )";
					        BASE.getBaseDatos().ejecutar(SQL);
					        
					        /*FIN PROCESOS ACTIVIDADES */
	    				}else{
	    					CODIGO=this.getSolicitud().getCodigo();
	    					String crit_sql="";
    						if(this.getSolicitud().getObs().length()>0 ){
    							crit_sql="obs='"+ this.getSolicitud().getObs() +"',";
    						}
	    					if(!adjuntos.equals("-1")){
	    						SQL="UPDATE corp_solicitud_mud set sol=?,"+crit_sql+"status='2',usuario_act='"+ USUARIO.getUsuario() +"',fecha_act='"+FECHA+"',hora_act='"+HORA+"' where codigo='"+ CODIGO + "' ";
		    					BASE.getBaseDatos().guardarArchivo(adjuntos, SQL);
	    					}else{
	    						SQL="UPDATE corp_solicitud_mud set "+crit_sql+"status='2',usuario_act='"+ USUARIO.getUsuario() +"',fecha_act='"+FECHA+"',hora_act='"+HORA+"' where codigo='"+ CODIGO + "' ";
		    					BASE.getBaseDatos().ejecutar( SQL);
	    					}
	    					//SQL="UPDATE corp_sitesurvey set fecha_act='"+ FECHA +"',hora_act='"+HORA+"',stx='ACTUALIZADO'  Where codigo='"+this.getSolicitud().getCod_site()  +"'  ";
	    					//BASE.getBaseDatos().ejecutar(SQL);
	    					SQL="UPDATE corp_sucursales SET telefono='"+this.getSolicitud().getSucursal_mud().getTel1() +"', celular='"+this.getSolicitud().getSucursal_mud().getTel2()+"', telefono_oficina='"+this.getSolicitud().getSucursal_mud().getTel3()+"',zona='"+this.getSolicitud().getSucursal_mud().getZona() +"',ciudad='"+  this.getSolicitud().getSucursal_mud().getCiudad() +"',municipio='"+  this.getSolicitud().getSucursal_mud().getCod_mun() +"',"+
	    					"avcalle='"+this.getSolicitud().getSucursal_mud().getAvcalle()+"',tipoinmueble='"+ this.getSolicitud().getSucursal_mud().getTp_inmueble() +"',des_inmuemble='"+this.getSolicitud().getSucursal_mud().getDes_inmueble()+"',nro_inmueble='"+  this.getSolicitud().getSucursal_mud().getNro() +"',piso_inmueble='"+ this.getSolicitud().getSucursal_mud().getPiso() +"'  "+
	    					"Where prospecto='"+ this.solicitud.getCod_prospecto() +"' ";
	    					BASE.getBaseDatos().ejecutar(SQL);
	    					
	    					CABECERA="SOLICITUD MUDANZA CON CODIGO="+CODIGO+" ACTUALIZADA POR VENDEDOR";
	    				}
	    				if (this.getSolicitud().getCodigo().equals("-1")){
		    				SQL="INSERT INTO corp_sitesurvey_detalle " +
	  		    			"(site,sucursal,servicio,producto) "+
	  		    			"VALUES('"+COD_SITE+"','"+ COD_NSUC +"','"+ solicitud.getServicio() +"','"+ solicitud.getProducto() +"' )";
	  		    	        BASE.getBaseDatos().ejecutar(SQL);
	  		    	        String cod_is="-1";
	  		    	        Resultado RCS=BASE.getBaseDatos().consultar("SELECT IDENT_CURRENT('corp_sitesurvey_detalle') as idx ");
	  		    	        if(RCS.RP==true ){
	  		    	        	cod_is=RCS.getCadena("idx");
	  		    	        }
		    				SQL="INSERT INTO corp_solicitud_mud_detalle " +
		  		    			"(solicitud,sucursal,servicio,producto,monto,cod_is) "+
		  		    			"VALUES('"+CODIGO+"','"+ solicitud.getSucursal() +"','"+solicitud.getServicio()+"','"+solicitud.getProducto()+"','0','"+cod_is+"' ) ";
		    				BASE.getBaseDatos().ejecutar(SQL);
	    				}else{
	    					SQL="UPDATE corp_solicitud_mud_detalle SET " +
	  		    			  " servicio='"+solicitud.getServicio()+"',producto='"+solicitud.getProducto()+"' Where cod='"+ solicitud.getCod_item() +"' ";
	    	    		   BASE.getBaseDatos().ejecutar(SQL); 
	    	    		  
	    	    		   SQL="UPDATE corp_sitesurvey_detalle " +
	  		    			"Set sucursal='"+ solicitud.getSucursal() +"',servicio='"+ solicitud.getServicio() +"',producto='"+ solicitud.getProducto() +"'  "+
	  		    			"Where cod='"+ solicitud.getCod_item_is()  +"' ";
	  		    	      
		    			}
	    		   /*
	    				for(int i=0; i<lst_suc1.size();i++){
	    					String cod=lst_cods.get(i).toString();
	    					String cod_is=lst_cods_is.get(i).toString();
  		    	    		String suc=lst_suc1.get(i).toString();
  		    	    		String ser=lst_serv.get(i).toString();
  		    	    		String pro=lst_prod.get(i).toString();
  		    	    		if (this.getSolicitud().getCodigo().equals("-1")){
	  		    	    		if(!suc.equals("-1") && !ser.equals("-1") && !pro.equals("-1")  ){
		  		    	    		SQL="INSERT INTO corp_solicitud_mud_detalle " +
			  	  		    			"(solicitud,sucursal,servicio,producto,monto) "+
			  	  		    			"VALUES('"+CODIGO+"','"+suc+"','"+ser+"','"+pro+"','0' ) ";
		  		    	    		BASE.getBaseDatos().ejecutar(SQL);
		  		    	    		SQL="INSERT INTO corp_sitesurvey_detalle " +
		  	  		    			"(site,sucursal,servicio,producto) "+
		  	  		    			"VALUES('"+COD_SITE+"','"+ suc +"','"+ ser +"','"+ pro +"' )";
		  	  		    	        BASE.getBaseDatos().ejecutar(SQL);
	  		    	    		}
  		    	    	   }else{
  		    	    		   if(!suc.equals("-1") && !ser.equals("-1") && !pro.equals("-1")  ){
	  		    	    		   SQL="UPDATE corp_solicitud_mud_detalle SET " +
		  	  		    			  " servicio='"+ser+"',producto='"+pro+"' Where cod='"+cod+"' ";
	  		    	    		   BASE.getBaseDatos().ejecutar(SQL); 
	  		    	    		   SQL="UPDATE corp_sitesurvey_detalle " +
		  	  		    			"Set sucursal='"+ suc +"',servicio='"+ ser +"',producto='"+ pro +"'  "+
		  	  		    			"Where cod='"+cod_is+"' ";
		  	  		    	       // BASE.getBaseDatos().ejecutar(SQL); 
  		    	    		   }   
  		    	    	   }
  		    	    	}
	    			*/
	    			String DESTINO=USUARIO.getEmail()+","+USUARIO.getEmail_sup()+",planeamiento@movilmax.com"; 
  		    	    String MSG_EM="";
  		    	    MSG_EM =MSG_EM+ "<br/>\n";
 				    MSG_EM = MSG_EM + "Cliente: " + this.getSolicitud().getContrato() +" - "+this.getSolicitud().getDes_cliente() + " <br/>\n";
	  				MSG_EM = MSG_EM + "Fecha status: "+new Fecha().getFecha()+" "+ new Fecha().getHoras() +" <br/>\n";
	  				MSG_EM = MSG_EM + "Usuario status: " + USUARIO.getDescripcion() + " <br/>\n";
	  				MSG_EM = MSG_EM + "Observaciones: " + this.getSolicitud().getObs() + " <br/>\n";
	  				SQL="INSERT INTO apli_emails (para,cabecera,mensaje) VALUES('" + DESTINO + "','"+CABECERA+" CLIENTE="+this.getSolicitud().getContrato() +" - "+this.getSolicitud().getDes_cliente()+"','" + MSG_EM + "' ) ";
					BASE.getBaseDatos().ejecutar(SQL);
	  				if (this.getSolicitud().getCodigo().equals("-1") ){
	  					 MSG_EM ="";
	  					 MSG_EM = "Se ha generado un nuevo site survey con el codigo: "+ COD_SITE +" <br/>\n";
	  					 MSG_EM = MSG_EM + "Asociado a la solicitud de mudanza con el codigo: "+ CODIGO +" <br/>\n";
	  					 MSG_EM = MSG_EM + "Contrato: " + this.getSolicitud().getContrato() + " <br/>\n";
	    				 MSG_EM = MSG_EM + "Razon social: " + this.getSolicitud().getDes_cliente() + " <br/>\n";
	    				 MSG_EM = MSG_EM + "Telefonos: " + this.getSolicitud().getSucursal_mud().getTel1() +" <br/>\n";
	    				 MSG_EM = MSG_EM + "Status: Enviado a planeamiento  <br/>\n";
	    				 MSG_EM = MSG_EM + "Fecha status: "+new Fecha().getFecha()+" "+ new Fecha().getHoras() +" <br/>\n";
	    				 MSG_EM = MSG_EM + "Usuario status: " + USUARIO.getDescripcion() + " <br/>\n";
	    				 SQL="INSERT INTO apli_emails (para,cabecera,mensaje) VALUES('" + DESTINO  + "','NUEVO SITE SURVEY CODIGO="+COD_SITE+" CLIENTE="+ this.getSolicitud().getContrato() +" - "+this.getSolicitud().getDes_cliente() +"','" + MSG_EM + "' ) ";
	    				 BASE.getBaseDatos().ejecutar(SQL);	
						 this.addActionMessage("Solicitud de mudanza registrada y enviada correctamente");
	  				}else{
	  					 this.addActionMessage("Solicitud de mudanza actualizada correctamente");
	  				}
	  				this.addActionMessage("Copia enviada a :"+DESTINO+" ");
  		    	    this.addActionMessage("Actividad registrada con fecha : ("+ new Fecha().getFecha() +" "+ new Fecha().getHoras()  +" )");
  		    	    BASE.getBaseDatos().cerrarConexion();
  		    	  return SUCCESS; 	
	    	  }catch(Exception err  ){
				    this.addActionError("Error: "+err.toString() );
			  } 
	    	  BASE.getBaseDatos().cerrarConexion(); 
		   }
		   else
			 this.addActionError("No hay conexion al servidor");  
	   } 
	  else
		  this.addActionError("La sesion del usuario ha caducado");   	
	
	   return ERROR;
	   
   } 
	
    @SuppressWarnings("rawtypes")
	public String enviar_adendun() throws Exception {
		Map session = ActionContext.getContext().getSession();
	    Usuario USUARIO = (Usuario)session.get("ses_usuario");
	    if (USUARIO!=null){		
	    	BASE= new Conectar();
	    	if(BASE.getMsg().equals("SI")){	
	    		 try{
	    			if ( this.getArchivoFileName().length() == 0 ){	
						this.addActionError( "Debe seleccionar el archivo con el adendun firmado" );
					}
					if(!this.getArchivoContentType().trim().equals("application/vnd.openxmlformats-officedocument.wordprocessingml.document")){
						 this.addActionError("El tipo de archivo :"+ this.getArchivoContentType() +" no es valido, solo se permiten archivo ( docx )" );
			    	}

	    			Fecha F=new Fecha();
	    			String FECHA=F.getFecha();
	    			String HORA=F.getHoras();
	    			String adjuntos="",SQL="";
	    			String CABECERA="";
	    			try {
	    				StringBuilder sb = new StringBuilder();
	    				sb.append("/home/corporativo/clientes/"+ solicitud.getContrato() +"/" );
	    				sb.append("adendum_mud.docx" );
	    				File theFile = new File(sb.toString());
	    				FileUtils.copyFile( this.getArchivo() , theFile);
	    				adjuntos="/home/corporativo/clientes/"+ solicitud.getContrato() +"/adendum_mud.docx";
	    				
	    				if (!this.getCod_adendun().equals("-1") ){
	    					SQL="UPDATE corp_adendus set adendun=?,obs_act='"+ this.getSolicitud().getObs() +"',status='CONFIRMADO',usuario_act='"+ USUARIO.getUsuario() +"',fecha_act='"+FECHA+"',hora_act='"+HORA+"',mudanza='1' where codigo='"+ this.getCod_adendun() + "' ";
	    					BASE.getBaseDatos().guardarArchivo(adjuntos, SQL);
	    					SQL="UPDATE corp_solicitud_mud set obs='"+ this.getSolicitud().getObs() +"',status='17',usuario_act='"+ USUARIO.getUsuario() +"',fecha_act='"+FECHA+"',hora_act='"+HORA+"' where codigo='"+ this.getSolicitud().getCodigo() + "' ";
	    					BASE.getBaseDatos().ejecutar(SQL);
	    					CABECERA="ADENDUM PARA MUDANZA CARGADO POR VENDEDOR";
	    				}
	    			}catch (Exception e){
	    				this.addActionError("Error al intentar cargar el archivo :"+ e.toString()  );
	  		    	    return ERROR;
	    			}
	    			
	    			String DESTINO=USUARIO.getEmail()+","+USUARIO.getEmail_sup()+",nadeska@movilmax.com"; 
  		    	    SQL="INSERT INTO corp_seguimiento_actividades (prospecto,actividad,detalle,obs,usuario,fecha,hora) "+
					"VALUES('"+this.getSolicitud().getCod_prospecto() +"','9','31','CARGAR FIRMA ADENDUM (SIA-WEB)','sistema','"+FECHA+"','"+HORA+"' )";
			        //BASE.getBaseDatos().ejecutar(SQL); 
  		    	    String MSG_EM="";
  		    	    MSG_EM =MSG_EM+ "<br/>\n";
  		    	    MSG_EM = MSG_EM + "Nueva respuesta adendum para mudanza codigo: " + this.getCod_adendun() + " cargado por vendedor <br/>\n";
 				    MSG_EM = MSG_EM + "Cliente: " + this.getSolicitud().getContrato() +" - "+this.getSolicitud().getDes_cliente() + " <br/>\n";
	  				MSG_EM = MSG_EM + "Fecha status: "+ new Fecha().getFecha()+" "+ new Fecha().getHoras() +" <br/>\n";
	  				MSG_EM = MSG_EM + "Usuario status: " + USUARIO.getDescripcion() + " <br/>\n";
	  				MSG_EM = MSG_EM + "Observaciones: " + this.getSolicitud().getObs() + " <br/>\n";
					SQL="INSERT INTO apli_emails (para,cabecera,mensaje) VALUES('" + DESTINO + "','"+CABECERA+" CLIENTE="+this.getSolicitud().getContrato() +" - "+this.getSolicitud().getDes_cliente()+"','" + MSG_EM + "' ) ";
					BASE.getBaseDatos().ejecutar(SQL);
  		    	    this.addActionMessage("Adendum para mudanza enviado correctamente");
  		    	    this.addActionMessage("Email enviado a :"+DESTINO+" ");
  		    	    this.addActionMessage("Actividad registrada con fecha : ("+ new Fecha().getFecha() +" "+ new Fecha().getHoras()  +" )");
  		    	    BASE.getBaseDatos().cerrarConexion();
  		    	  return SUCCESS; 	
	    	  }catch(Exception err ){
				    this.addActionError("Error: "+err.toString() );
			  } 
	    	  BASE.getBaseDatos().cerrarConexion();
		   }
		   else
			 this.addActionError("No hay conexion al servidor");  
	   } 
	  else
		  this.addActionError("La sesion del usuario ha caducado");   	
	
	   return ERROR;
	   
   } 
 
    
    
    
	private String listar_servicios() {
		lst_servicios= new ArrayList<Listax>();
			  try{
		       String SQL="Select X.cod,UPPER(X.descripcion) as descripcion "+
	    	      "From corp_servicios X  "+
	    	      "where X.mostrar='1' and cli='1' Order by X.descripcion  "; 	 	
		      // Debug.println("WWWW", SQL);
				Resultado  RCS=BASE.getBaseDatos().consultar(SQL);
				  if(RCS.RP){
					  do{ 
						  Listax LST=new Listax();
						  LST.setCod(RCS.getCadena("cod"));
						  LST.setDescripcion(RCS.getCadena("descripcion"));
						  lst_servicios.add(LST);
					  }while(RCS.sigItem()); 
				  }
			   }catch(Exception err  ){
					//hubo un error .....
			   }  
		  return SUCCESS;
	} 
	
	private String listar_productos(){
		lst_productos= new ArrayList<Listax>();
			  try{
				  String cod_serv="0";
				  cod_serv=this.solicitud.getServicio();
				  /*Cadena C=new Cadena();
				  LinkedList vrs=C.tokens(this.solicitud.getServicio(), ",");
				  for(int i=0; i<vrs.size();i++){
					  LinkedList ids= C.tokens(this.getId_obj() ,"_");
					  String id_sel=ids.get(1).toString().trim();
					  if(id_sel.equals( C.convertirStr(i+1) ) ) {
						  cod_serv=vrs.get(i).toString();
					  }
				  }*/
		    	  String SQL="Select X.cod,X.descripcion,X.megas From corp_productos X,corp_servicios_prod Z "+
	    	         "where Z.servicio='"+ cod_serv +"' and Z.mostrar='1' and X.cod=Z.producto and X.mostrar='1' and X.megas>0 Order by X.megas ASC "; 	
				  Resultado RCS=BASE.getBaseDatos().consultar(SQL);
				  if(RCS.RP){
					  do{ 
						  Listax LST=new Listax();
						  LST.setCod(RCS.getCadena("cod"));
						  //LST.setDescripcion(RCS.getCadena("descripcion"));
						  LST.setDescripcion(RCS.getCadena("megas")+" Mbps");
						  lst_productos.add(LST);
					  }while(RCS.sigItem()); 
				  }
			   }catch(Exception err  ){
					//hubo un error ...
			}  
		  return SUCCESS;
	} 
	
	private String listar_sucursales(){
		lst_sucursales= new ArrayList<Listax>();
			  try{	
		    	String SQL="Select X.cod,UPPER(X.descripcion) as descripcion "+
	    	      "From corp_sucursales X,detalle_servicios_corp C  "+
	    	      "where C.contrato='"+this.getSolicitud().getContrato()+"' and C.sucursal=X.cod Order by X.cod ASC"; 	
				  Resultado RCS=BASE.getBaseDatos().consultar(SQL);
				  if(RCS.RP){
					  do{ 
						  
						  Listax LST=new Listax();
						  LST.setCod(RCS.getCadena("cod"));
						  LST.setDescripcion(RCS.getCadena("descripcion"));
						  lst_sucursales.add(LST);
					  }while(RCS.sigItem()); 
				  }
			   }catch(Exception err ){
					//hubo un error ...
			   }  
		  return SUCCESS;
	} 
	
	@SuppressWarnings("rawtypes")
	public String listar(){
		lst_presupuestos=new LinkedList<Presupuesto>();
		  Map session = ActionContext.getContext().getSession();
		    Usuario USUARIO = (Usuario)session.get("ses_usuario");
		    int i=0;
		    if (USUARIO!=null){	
		    	BASE= new Conectar();
		    	if(BASE.getMsg().equals("SI")){	    
		    		String SQL="select S.codigo,S.solicitud,Y.contrato,CONVERT(varchar(30),S.fecha_act,103) as fecha,s.hora_act as hora,T.identificacion+' - '+T.nombres+' '+T.apellidos as razon,"+
		    	    	    "V.descripcion as des_vendedor,S.obs_act as obsx "+
		    	    	    "from clientes T,corp_presupuesto_upg S,corp_solicitud_upg Y,Vendedores V,contratos C "+
		    	    	    "where S.status in('REGISTRADO','ACTUALIZADO' ) and S.solicitud=Y.codigo and Y.contrato=C.contrato and C.cliente=T.codigo and Y.usuario=V.usuario "+
		    	    	    "Order by S.fecha_act ASC,S.hora_act ASC ";
		    		Resultado RCS=BASE.getBaseDatos().consultar(SQL);
		    		
		    		PWimax pw=new PWimax(BASE.getBaseDatos()); 	
		    		Cadena C=new Cadena();
		    		if(RCS.RP){
		    		   do{
		    			   Presupuesto ITM=new Presupuesto();
		    			   ITM.setId(C.convertirStr(i));
		    			   String cod_presupuesto=RCS.getCadena("codigo");
		    			   String cod_sol=RCS.getCadena("solicitud");
		    			   
		    			   ITM.setCodigo(cod_presupuesto);
		    			   ITM.setFecha(RCS.getCadena("fecha"));
		    			   ITM.setHora(RCS.getCadena("hora"));
		    			   ITM.setProspecto(RCS.getCadena("razon"));
		    			   ITM.setSucursal(RCS.getCadena("contrato"));// se usa para el nro de contrato
		    			   ITM.setVendedor(RCS.getCadena("des_vendedor"));
		    			   ITM.setObs(RCS.getCadena("obsx"));
		    			   ITM.setBeneficio(RCS.getCadena("solicitud"));
		    			   
		    			   Resultado RCS2=pw.calcularPresupuestoUpg(cod_presupuesto,cod_sol, 8);
		    			   ITM.setCosto( C.formatearNumero(( RCS2.getDoble("costo_eqp")+RCS2.getDoble("costo_mat"))));
		    			   ITM.setComision(C.formatearNumero(RCS2.getDoble("comision")));
		    			   ITM.setEquipos(C.formatearNumero(RCS2.getDoble("costo_eqp")));
		    			   ITM.setMateriales(C.formatearNumero(RCS2.getDoble("costo_mat")));
		    			   ITM.setInstalacion(C.formatearNumero(RCS2.getDoble("instalacion")));
		    			   ITM.setRecurrente(C.formatearNumero(RCS2.getDoble("recurrente")));
		    			   
		    			   lst_presupuestos.add(ITM);
		    			   i++;
		    			   RCS2.liberar();
		    		   }while(RCS.sigItem());
		    		}
		    	  BASE.getBaseDatos().cerrarConexion();	
		    	}
		    }
		  return SUCCESS;
	}
	
   public String getJSON(){
		@SuppressWarnings("rawtypes")
		Map session = ActionContext.getContext().getSession();
		  Usuario USUARIO = (Usuario)session.get("ses_usuario");
		  if (USUARIO==null){
			  this.addActionError("La sesion del usuario ha caducado");
			  return ERROR;
		  }
		  BASE= new Conectar();
		  if(BASE.getMsg().equals("SI")){
			  listar_sucursales();
			  listar_servicios();
			  if(solicitud.getServicio()!=null){
			     listar_productos();  
			  }
			  BASE.getBaseDatos().cerrarConexion();
			 return SUCCESS;
		  }else{
			  this.addActionError("No hay conexion al servidor");
		      return ERROR;
		  }
    }
	
	public List<Listax> getLst_servicios() {
		return lst_servicios;
	}
	public void setLst_servicios(List<Listax> lst_servicios) {
		this.lst_servicios = lst_servicios;
	}
	public List<Listax> getLst_productos() {
		return lst_productos;
	}
	public void setLst_productos(List<Listax> lst_productos) {
		this.lst_productos = lst_productos;
	}
	public SolicitudUpg getSolicitud() {
		return solicitud;
	}
	public void setSolicitud(SolicitudUpg solicitud) {
		this.solicitud = solicitud;
	}
	public List<Listax> getLst_sucursales() {
		return lst_sucursales;
	}
	public void setLst_sucursales(List<Listax> lst_sucursales) {
		this.lst_sucursales = lst_sucursales;
	}
	public String getId_obj() {
		return id_obj;
	}
	public void setId_obj(String id_obj) {
		this.id_obj = id_obj;
	}
	public List<ListaSs> getTabla_det() {
		return tabla_det;
	}
	public void setTabla_det(List<ListaSs> tabla_det) {
		this.tabla_det = tabla_det;
	}
	public File getArchivo() {
		return archivo;
	}
	public void setArchivo(File archivo) {
		this.archivo = archivo;
	}
	public String getArchivoContentType() {
		return archivoContentType;
	}
	public void setArchivoContentType(String archivoContentType) {
		this.archivoContentType = archivoContentType;
	}
	public String getArchivoFileName() {
		return archivoFileName;
	}
	public void setArchivoFileName(String archivoFileName) {
		this.archivoFileName = archivoFileName;
	}
	public String getBloquear() {
		return bloquear;
	}
	public void setBloquear(String bloquear) {
		this.bloquear = bloquear;
	}
	public String getCod_adendun() {
		return cod_adendun;
	}
	public void setCod_adendun(String cod_adendun) {
		this.cod_adendun = cod_adendun;
	}
	public LinkedList<Presupuesto> getLst_presupuestos() {
		return lst_presupuestos;
	}
	public void setLst_presupuestos(LinkedList<Presupuesto> lst_presupuestos) {
		this.lst_presupuestos = lst_presupuestos;
	}
	public String getCod_presupuesto() {
		return cod_presupuesto;
	}
	public void setCod_presupuesto(String cod_presupuesto) {
		this.cod_presupuesto = cod_presupuesto;
	}
	public String getOmitir() {
		return omitir;
	}
	public void setOmitir(String omitir) {
		this.omitir = omitir;
	}


	public SolicitudUpg getPrueba() {
		return prueba;
	}
	public void setPrueba(SolicitudUpg prueba) {
		this.prueba = prueba;
	}

	
}



